docs: Add GtkPopoverMenuBar to the gallery
authorMatthias Clasen <mclasen@redhat.com>
Mon, 26 Oct 2020 03:57:12 +0000 (23:57 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 26 Oct 2020 05:08:49 +0000 (01:08 -0400)
docs/reference/gtk/images/menubar.png
docs/reference/gtk/visual_index.xml
docs/tools/widgets.c

index 26304f23c08ffdd24bc22401116b2aeeaa0d11b3..237ffb6ce40acbb193925e436244200243891216 100644 (file)
Binary files a/docs/reference/gtk/images/menubar.png and b/docs/reference/gtk/images/menubar.png differ
index 80daea47178785946bc7ac6122ac1ba7a30a32bd..8c8329b2c0915111f23059ccd9da5ecc0acfb38f 100644 (file)
@@ -24,6 +24,7 @@
     <link linkend="GtkMediaControls"><inlinegraphic fileref="media-controls.png" format="PNG"></inlinegraphic></link>
     <link linkend="GtkWindowControls"><inlinegraphic fileref="windowcontrols.png" format="PNG"></inlinegraphic></link>
     <link linkend="GtkEmojiChooser"><inlinegraphic fileref="emojichooser.png" format="PNG"></inlinegraphic></link>
+    <link linkend="GtkPopoverMenu"><inlinegraphic fileref="menubar.png" format="PNG"></inlinegraphic></link>
   </para>
 </section>
 
index 9370c0679810d5358de17ca4b78faf820195ade9..6b589bcc9eafb7e63c65b7b3c568d8674e8a2cf4 100644 (file)
@@ -1589,6 +1589,57 @@ create_expander (void)
   return new_widget_info ("expander", widget, SMALL);
 }
 
+static void
+mapped_cb (GtkWidget *widget)
+{
+  gtk_widget_child_focus (widget, GTK_DIR_RIGHT);
+}
+
+static WidgetInfo *
+create_menu_bar (void)
+{
+  GtkWidget *widget;
+  GtkWidget *vbox;
+  GMenu *menu, *menu1;
+  GMenuItem *item;
+
+  menu = g_menu_new ();
+  menu1 = g_menu_new ();
+  item = g_menu_item_new ("Item", "action");
+  g_menu_append_item (menu1, item);
+  g_menu_append_submenu (menu, "File", G_MENU_MODEL (menu1));
+  g_object_unref (item);
+  g_object_unref (menu1);
+  menu1 = g_menu_new ();
+  item = g_menu_item_new ("Item", "action");
+  g_menu_append_item (menu1, item);
+  g_menu_append_submenu (menu, "Edit", G_MENU_MODEL (menu1));
+  g_object_unref (item);
+  g_object_unref (menu1);
+  menu1 = g_menu_new ();
+  item = g_menu_item_new ("Item", "action");
+  g_menu_append_item (menu1, item);
+  g_menu_append_submenu (menu, "View", G_MENU_MODEL (menu1));
+  g_object_unref (item);
+  g_object_unref (menu1);
+
+  widget = gtk_popover_menu_bar_new_from_model (G_MENU_MODEL (menu));
+
+  g_object_unref (menu);
+
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+  gtk_widget_set_halign (widget, GTK_ALIGN_CENTER);
+  gtk_widget_set_valign (widget, GTK_ALIGN_CENTER);
+  gtk_box_append (GTK_BOX (vbox), widget);
+  gtk_box_append (GTK_BOX (vbox), gtk_label_new ("Menu Bar"));
+
+  add_margin (vbox);
+
+  g_signal_connect (widget, "map", G_CALLBACK (mapped_cb), NULL);
+
+  return new_widget_info ("menubar", vbox, SMALL);
+}
+
 GList *
 get_all_widgets (void)
 {
@@ -1658,6 +1709,7 @@ get_all_widgets (void)
   retval = g_list_prepend (retval, create_calendar ());
   retval = g_list_prepend (retval, create_emojichooser ());
   retval = g_list_prepend (retval, create_expander ());
+  retval = g_list_prepend (retval, create_menu_bar ());
 
   return retval;
 }